microcad-lang-parse 0.5.0

µcad language syntax lexer and parser
Documentation
---
source: crates/syntax/tests/parser.rs
expression: parse(input)
---
Ok(
    Program {
        span: 0..50,
        statements: StatementList {
            span: 0..50,
            extras: ItemExtras {
                leading: LeadingExtras(
                    [],
                ),
                trailing: TrailingExtras(
                    [],
                ),
            },
            statements: [
                (
                    InlineModule(
                        InlineModule {
                            span: 0..50,
                            keyword_span: 20..23,
                            extras: ItemExtras {
                                leading: LeadingExtras(
                                    [],
                                ),
                                trailing: TrailingExtras(
                                    [],
                                ),
                            },
                            doc: DocBlock {
                                span: 0..20,
                                lines: [
                                    "/// Doc comment",
                                ],
                            },
                            attributes: [],
                            visibility: None,
                            name: Identifier {
                                span: 24..27,
                                name: "foo",
                            },
                            body: Body {
                                span: 28..50,
                                statements: StatementList {
                                    span: 29..49,
                                    extras: ItemExtras {
                                        leading: LeadingExtras(
                                            [
                                                Whitespace(
                                                    "\n        ",
                                                ),
                                            ],
                                        ),
                                        trailing: TrailingExtras(
                                            [],
                                        ),
                                    },
                                    statements: [
                                        (
                                            LocalAssignment(
                                                LocalAssignment {
                                                    span: 38..43,
                                                    extras: ItemExtras {
                                                        leading: LeadingExtras(
                                                            [],
                                                        ),
                                                        trailing: TrailingExtras(
                                                            [],
                                                        ),
                                                    },
                                                    attributes: [],
                                                    name: Identifier {
                                                        span: 38..39,
                                                        name: "a",
                                                    },
                                                    ty: None,
                                                    value: Literal(
                                                        Literal {
                                                            span: 42..43,
                                                            extras: ItemExtras {
                                                                leading: LeadingExtras(
                                                                    [],
                                                                ),
                                                                trailing: TrailingExtras(
                                                                    [],
                                                                ),
                                                            },
                                                            literal: Integer(
                                                                IntegerLiteral {
                                                                    span: 42..43,
                                                                    value: 1,
                                                                    raw: "1",
                                                                },
                                                            ),
                                                        },
                                                    ),
                                                },
                                            ),
                                            TrailingExtras(
                                                [
                                                    Whitespace(
                                                        "\n    ",
                                                    ),
                                                ],
                                            ),
                                        ),
                                    ],
                                    tail: None,
                                },
                            },
                        },
                    ),
                    TrailingExtras(
                        [],
                    ),
                ),
            ],
            tail: None,
        },
    },
)